About 3668 letters
About 18 minutes
The way to create classes and objects in Python:
# Define a class; a class is a type
class ClassName:
# Constructor method, used to initialize the object
def __init__(self, parameter_list) -> None:
pass
# ... other class contents
# Create an object; the object is a variable of the class type
variable_name: ClassName = ClassName(actual_parameters) # Calls the constructor here
__init__
method (with double underscores before and after) is the constructor, responsible for initializing the object upon creation. self
is automatically passed the object instance itself when called. __init__
inside the class, with self
as their first parameter. self
inside the __init__
method. Example syntax:
class ClassName:
def __init__(self, parameters) -> None:
self.attribute1 = initial_value
self.attribute2 = initial_value
self.attribute3 = initial_value
def method1(self, parameters) -> return_type:
pass
def method2(self, parameters) -> return_type:
pass
def method3(self, parameters) -> return_type:
pass
class Refrigerator:
"""
A Refrigerator class to simulate opening/closing and storing contents.
"""
def __init__(self):
"""
Constructor to initialize the refrigerator state.
"""
self.__contents = [] # Private attribute for contents, starts empty
self.__is_open = False # Private attribute for door status, starts closed
def open(self):
"""Open the refrigerator door."""
self.__is_open = True
def close(self):
"""Close the refrigerator door."""
self.__is_open = False
def store(self, goods) -> bool:
"""
Store an item inside the refrigerator.
Args:
goods (Any): The item to store.
Returns:
bool: True if successful, False if door is closed.
"""
if not self.__is_open:
return False
self.__contents.append(goods)
return True
def take(self, index: int):
"""
Take an item out of the refrigerator by index.
Args:
index (int): The index of the item to take.
Returns:
Any: The item taken, or None if invalid.
"""
if not self.__is_open:
return None
if index >= len(self.__contents):
return None
goods = self.__contents[index]
self.__contents.pop(index)
return goods
# Create two refrigerator objects; each has independent attributes
refrigerator_A = Refrigerator()
refrigerator_B = Refrigerator()
refrigerator_A.open() # Open door (self = refrigerator_A)
refrigerator_A.store('Elephant') # Store 'Elephant'
refrigerator_A.close() # Close door
refrigerator_B.open()
refrigerator_B.store('Lion')
refrigerator_B.close()
goods = refrigerator_A.take(0) # Take item from refrigerator_A
print(goods) # Output: Elephant
refrigerator_B.open()
goods = refrigerator_B.take(0) # Take item from refrigerator_B
print(goods) # Output: Lion
This demonstrates basic object-oriented programming with private attributes and methods manipulating the internal state of each object independently.
Created in 5/15/2025
Updated in 5/21/2025